import subprocess
import os

def run_in_screen(command, session_name="my_session"):
    """
    使用 screen 在后台运行命令，并支持恢复到前台
    
    参数:
    command (list): 要执行的命令及其参数列表
    session_name (str): screen 会话名称
    
    返回:
    int: 成功时返回 0，失败时返回错误代码
    """
    try:
        # 构建 screen 命令
        screen_cmd = ["screen", "-dmS", session_name] + command
        
        # 执行命令
        result = subprocess.run(
            screen_cmd,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            text=True
        )
        
        # 检查命令是否成功执行
        if result.returncode != 0:
            print(f"执行命令时出错: {result.stderr}")
            return result.returncode
        
        print(f"命令已在 screen 会话 '{session_name}' 中运行")
        print(f"使用 'screen -r {session_name}' 恢复到前台")
        return 0
            
    except Exception as e:
        print(f"执行命令时发生异常: {e}")
        return 1

# 使用示例
if __name__ == "__main__":
    # 在 screen 会话中运行 Python 脚本
    command = ["python3", "long_running_script.py"]
    run_in_screen(command, "script_session")